
#include"compile_run.hpp"
#include"../comm/httplib.h"
using namespace httplib;
using namespace ns_cr;
void Usage(std::string proc)
{
    std::cerr << "Usage: " << "\n\t" << proc << " port" << std::endl;
}
int main(int argc, char *argv[])
{
     if(argc != 2){
        Usage(argv[0]);
        return 1;
    }
     Server svr;

    // svr.Get("/hello",[](const Request &req, Response &resp){
    //     // 用来进行基本测试
    //     resp.set_content("hello httplib,你好 httplib!", "text/plain;charset=utf-8");
    // });

    svr.Post("/compile_and_run", [](const Request &req, Response &resp){
        // 用户请求的服务正文是我们想要的json string
        std::string in_json = req.body;
        std::string out_json;
        if(!in_json.empty()){
            compile_run::start(in_json, &out_json);
            resp.set_content(out_json, "application/json;charset=utf-8");
        }
    });

    // svr.set_base_dir("./wwwroot");
    svr.listen("0.0.0.0", atoi(argv[1])); //启动http服务

    /*Json::Value in_value;
    std::string in_json;
    in_value["code"]=R"(
    #include<iostream>
    int main(){
    std::cout<<"haha"<<std::endl;
    return 0;})";
    in_value["input"]="";
    in_value["cpu_limit"]=1;
    in_value["mem_limit"]=10086;
    Json::FastWriter writer;
    in_json=writer.write(in_value);
    std::string out_json;
    compile_run::start(in_json,&out_json);
    std::cout<<out_json<<std::endl;*/
    return 0;
}